package com.cyan.note.dto.manager.order;

import lombok.Data;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import java.util.List;

/**
 * 订单分配DTO
 * 
 * @author ZhangzhenYu
 * @since 2025-01-15
 */
@Data
public class OrderAssignDTO {

    /**
     * 打手分配信息列表
     */
    @NotEmpty(message = "打手分配信息不能为空")
    private List<WorkerAssignInfo> workers;

    /**
     * 分配备注
     */
    private String assignRemark;

    /**
     * 打手分配信息
     */
    @Data
    public static class WorkerAssignInfo {

        /**
         * 打手ID
         */
        @NotNull(message = "打手ID不能为空")
        private Long workerId;

        /**
         * 分成金额
         */
        @NotNull(message = "分成金额不能为空")
        @DecimalMin(value = "0.01", message = "分成金额必须大于0")
        private BigDecimal commissionAmount;

        /**
         * 分成比例
         */
        @NotNull(message = "分成比例不能为空")
        @DecimalMin(value = "0.01", message = "分成比例必须大于0")
        @DecimalMax(value = "100.00", message = "分成比例不能超过100%")
        private BigDecimal commissionRate;

        /**
         * 角色（主打手/副打手）
         */
        private String role = "main";
    }
}